package com.pan.admin.module.loanProduct.entity.vo;

import com.pan.admin.common.annotation.Excel;
import com.pan.admin.common.core.domain.BaseEntity;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 配置机构计划对象 loan_product_plan
 *
 * @author ts
 * @date 2023-12-27
 */
@Data
public class LoanProductPlanVO extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    private Long id;

    /**
     * 机构主键id
     */
    private Long loanProductId;

    /**
     * 所属机构
     */
    @Excel(name = "机构名称")
    private String productName;

    /**
     * logo
     */
    @Excel(name = "logo")
    private String logoPath;

    /**
     * 计划名称
     */
    @Excel(name = "计划名称")
    private String name;

    /**
     * 广告名称
     */
    @Excel(name = "广告名称")
    private String displayName;

    /**
     * 机构链接
     */
    @Excel(name = "机构链接")
    private String link;

    /**
     * 链接跳转类型(0默认跳转(无机构跳转), 1公众号跳转, 2外链跳转, 3企微跳转)
     */
    private String linkType;

    /**
     * 本地机构_优先(0否， 1是)
     */
    private Integer priorityLocalOrg;

    /**
     * 本地机构_优先(0否， 1是)
     */
    private Integer type;

    /**
     * 机构计划结算价格
     */
    @Excel(name = "机构计划结算价格")
    private BigDecimal price;

    /**
     * 分润价格
     */
    private BigDecimal share;

    /**
     * 进量日期，（周一-周天数字分割1;2;7）
     */
    @Excel(name = "进量日期")
    private String openDates;

    /**
     * 开放时间24小时制，格式:（09:00-15:00）
     */
    @Excel(name = "开放时间")
    private String openTime;

    /**
     * 计划状态（0禁用 1启用）
     */
    @Excel(name = "计划状态", readConverterExp = "0=禁用,1=启用")
    private Long status;

    /**
     * 地区编码
     */
    private String area;

    /** 当日上限值 */
    private Integer maxLimit;

    /** 开启计划本地库排重（0禁用 默认1启用） */
    private Integer enableFilterLocal;
    /** 开启计划md5排重（默认0禁用 1启用） */
    private Integer enableFilterMd5;
    /** 开启计划多推（0禁用 默认1启用） */
    private Integer enableMultiPush;
    /** 开启进件空号检测（默认0禁用 1启用） */
    private Integer enableApplyEmptyCheck;
    /** 开启二要素验证（默认0禁用 1启用） */
    private Integer enableApplyTwoElement;
    /** 开启三要素验证（默认0禁用 1启用） */
    private Integer enableApplyThreeElement;

    /**
     * 计划类型(默认0机构计划类型，1平台计划类型 )
     * @see com.pan.admin.module.loanProduct.enums.PlanTypeEnum
     */
    private Integer planType;

    /**
     * 接入方(0我方 1对方)
     */
    private Integer providerType;

    /**
     * 版本类型
     *
     * 忽略模式(0), 全流程(1), 半流程(2)
     */
    private Integer versionType;

    /**
     * 版本模式:(默认:0md5模式， 1手机号8位掩码模式)
     */
    private Integer versionMode;

    /**
     * 分发权重(0-10000)
     */
    private Integer weight;

    /**
     * 计划环境(0 测试环境， 默认1 正式环境)
     */
    private Integer envType;

    public String getOpenDates() {
        return openDates;
    }

    public void setOpenDates(String openDates) {
        this.openDates = openDates;
    }

    public Integer getPriorityLocalOrg() {
        return priorityLocalOrg;
    }

    public void setPriorityLocalOrg(Integer priorityLocalOrg) {
        this.priorityLocalOrg = priorityLocalOrg;
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getLogoPath() {
        return logoPath;
    }

    public void setLogoPath(String logoPath) {
        this.logoPath = logoPath;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setLoanProductId(Long loanProductId) {
        this.loanProductId = loanProductId;
    }

    public Long getLoanProductId() {
        return loanProductId;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public Long getStatus() {
        return status;
    }

    public String getDisplayName() {
        return displayName;
    }

    public void setDisplayName(String displayName) {
        this.displayName = displayName;
    }

    public String getLink() {
        return link;
    }

    public void setLink(String link) {
        this.link = link;
    }

    public String getLinkType() {
        return linkType;
    }

    public void setLinkType(String linkType) {
        this.linkType = linkType;
    }

    public String getOpenTime() {
        return openTime;
    }

    public void setOpenTime(String openTime) {
        this.openTime = openTime;
    }

    public Integer getEnableMultiPush() {
        return enableMultiPush;
    }

    public void setEnableMultiPush(Integer enableMultiPush) {
        this.enableMultiPush = enableMultiPush;
    }
}
